package cn.tedu.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * 使用预编译SQL实现注册功能;
 * 1.用户输入:用户名、密码、昵称、年龄;
 * 2.返回结果:
 *   2.1 用户名被占用[SELECT id FROM userinfo WHERE username=?];
 *   2.2 注册成功[INSERT INTO userinfo(username,password,nickname,age) VALUES (?,?,?,?)];
 */
public class JDBCReg {
    public static void main(String[] args) {
        try (Connection connection = DBUtil.getConnection();){
            //1.接收用户输入
            Scanner scanner = new Scanner(System.in);
            System.out.println("用户名:");
            String username = scanner.nextLine();
            System.out.println("密码:");
            String password = scanner.nextLine();
            System.out.println("昵称:");
            String nickname = scanner.nextLine();
            System.out.println("年龄:");
            Integer age = scanner.nextInt();
            //2.确定用户名是否被占用
            String sql1 = "SELECT id FROM userinfo WHERE username=?";
            PreparedStatement ps1 = connection.prepareStatement(sql1);
            //设置?的值
            ps1.setString(1, username);
            ResultSet rs1 = ps1.executeQuery();
            if (rs1.next()){//用户名被占用
                System.out.println("该用户名被占用");
            }else {//用户名可用,执行插入语句
                String sql2 = "INSERT INTO userinfo(username,password,nickname,age) VALUES (?,?,?,?)";
                PreparedStatement ps2 = connection.prepareStatement(sql2);
                //设置?的值
                ps2.setString(1, username);
                ps2.setString(2, password);
                ps2.setString(3, nickname);
                ps2.setInt(4, age);
                //执行预编译SQL
                int i = ps2.executeUpdate();
                if (i > 0){
                    System.out.println("恭喜您,注册成功");
                }else {
                    System.out.println("系统繁忙,请稍后再试");
                }
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}








